package glbjavatest;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.http.client.fluent.Request;
import org.apache.http.entity.StringEntity;
import org.apache.http.protocol.HTTP;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Stream;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author nkeni
 */
public class EventSend {

    public static ObjectMapper mapper = getJsonMapper();

    public static void main(String[] args) {
        //  String postUrl = "http://172.168.1.77:8080/bigdata-ws/rest/riskverify";
        String postUrl = "http://150.109.38.70:8080/bigdata-ws/rest/riskverify";//prod
        //    String postUrl = "http://localhost:8084/bigdata-ws/rest/riskverify";
        //tring postUrl = "http://106.15.11.76:8080/bigdata-ws/rest/riskverify";
        //String postUrl = "http://39.104.83.63:8081/bigdata-ws/rest/riskverify";

        try {
            String fileName = "E:\\risk\\touceng\\merchant_black_list\\0911.txt";

            //read file into stream, try-with-resources
            try (Stream<String> stream = Files.lines(Paths.get(fileName))) {

                stream.forEach(line->{
                    String jsonStr = "";
                    String[] fields = line.split("\t");

                    //Map<String, Object> event = getTestEventTCMerchant001();
                    Map<String, Object> event = new HashMap<String, Object>();
                    event.put("requestTime", getCurrentTimeStr()); //required
                    event.put("checkPoint", "TCMerchant001");   //required
                    event.put("appId", "qq_javaclienttest");   //required
                    Map<String, String> eventBody = new HashMap<String, String>();
                    eventBody.put("merchantID", fields[0]);
                    eventBody.put("merchantLocationCode", fields[1]);
                    eventBody.put("agencyID", fields[2]);
                    //eventBody.put("validTime", getCurrentTimeStr());
                    eventBody.put("merchantName", fields[3]);
                    eventBody.put("status", "99");
                    event.put("eventBody", eventBody); //required

                    //获取 Json string
                    try {
                        jsonStr = mapper.writeValueAsString(event);
                    } catch (JsonProcessingException e) {
                        e.printStackTrace();
                    }
                    //System.out.println(jsonStr);
                    StringEntity entity = new StringEntity(jsonStr, HTTP.UTF_8);
                    // StringEntity entity = new StringEntity(eventStr1010, HTTP.UTF_8);
                    entity.setContentType("application/json"); //http restful 发送格式
                    String readContent = null;
                    try {
                        readContent = Request.Post(postUrl).connectTimeout(1000).socketTimeout(2000).body(entity).execute().returnContent().asString();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    System.out.println("4.Get Response Content():\n" + readContent);

                });

                //  RiskResult r = mapper.readValue(readContent, RiskResult.class);
                // System.out.println(r.getCheckPoint() + ",中文" + r.getEventId() + "," + r.getResults().get("riskMessage") + "," + r.getResults().get("riskLevel"));

            } catch (IOException e) {
                e.printStackTrace();
            }



        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }
    public static Map<String, Object> getTestEventTP1002() throws IOException {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "TP1002");   //required
        event.put("appId", "javaclienttest");   //required        
        Map eventBody = mapper.readValue(eventStr, Map.class);

        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEvent1001() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "IP1001001");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("uid", "testuser");
        eventBody.put("orderAmount", "11.1");
        eventBody.put("addr", "testuseraddr6");
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventCP002() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "CP002");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("uid", "testuser");
        eventBody.put("orderAmount", "11.1");
        eventBody.put("addr", "testuseraddr6");
        event.put("eventBody", eventBody); //required
        return event;
    }
    public static Map<String, Object> getTestEventTCMerchant001() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "TCMerchant001");   //required
        event.put("appId", "qqjavaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("merchantID", "testuser");
        eventBody.put("merchantLocationCode", "11.1");
        eventBody.put("agencyID", "testuseraddr6");
        eventBody.put("validTime", "testuseraddr6");
        eventBody.put("merchantName", "testuseraddr6");
        eventBody.put("status", "99");
        event.put("eventBody", eventBody); //required
        return event;
    }
    public static Map<String, Object> getTestEventTC0001() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "TC0001");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("uid", "testuser");
        eventBody.put("orderAmount", "11.1");
        eventBody.put("addr", "testuseraddr6");
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventIP1002020() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "IP1002020");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("merchantId", "101111");
        eventBody.put("listRepoType", "BLACK");
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventIP1002021() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "IP1002021");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("merchantId", "101111");
        eventBody.put("listRepoType", "BLACK");
        eventBody.put("catalogId", "cardNo");
        eventBody.put("value", "4024101033422350");
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventIP1002022() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "IP1002022");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, Object> eventBody = new HashMap<String, Object>();
        eventBody.put("merchantId", "101111");
        eventBody.put("listRepoType", "BLACK");
        //eventBody.put("catalogId", "cardNo");
        eventBody.put("catalogId", "phone");
        eventBody.put("actionType", "add");
        List listRepoDatas = new LinkedList();

//        Map<String, String> data = new HashMap<String, String>();
//        data.put("value", "192.168.1.1");
//        data.put("updateTime", getCurrentTimeStr());
//        data.put("memo", "user456");
//        Map<String, String> data = new HashMap<String, String>();
//        data.put("value", "4024101033422350");
//        data.put("updateTime", getCurrentTimeStr());
//        data.put("memo", "user456");        
        Map<String, String> data = new HashMap<String, String>();
        data.put("value", "13818888886");
        data.put("updateTime", getCurrentTimeStr());
        data.put("memo", "user456");
        listRepoDatas.add(data);
        eventBody.put("listRepoDatas", listRepoDatas);
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventIP2001028() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "IP2001028");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        eventBody.put("userId", "427");
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventRiskTest001() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "RiskTest001");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        //  eventBody.put("ip", "220.189.246.130");
        eventBody.put("clientIp", "10.0.1.2");

        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestEventTCTradeResult001() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "TCTradeResult001");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        //  eventBody.put("ip", "220.189.246.130");
        eventBody.put("orderId", "201808041104000001");
        eventBody.put("merchantNo", "2018071101828730");
        eventBody.put("tradeStatus", "fail");
        event.put("eventBody", eventBody); //required
        return event;
    }

    public static Map<String, Object> getTestTCMerchantInfo001() {
        Map<String, Object> event = new HashMap<String, Object>();
        event.put("requestTime", getCurrentTimeStr()); //required
        event.put("checkPoint", "TCMerchantInfo001");   //required
        event.put("appId", "javaclienttest");   //required
        Map<String, String> eventBody = new HashMap<String, String>();
        //  eventBody.put("ip", "220.189.246.130");
        eventBody.put("merchantId", "2018071601899739");

        event.put("eventBody", eventBody); //required
        return event;
    }

    public static String getCurrentTimeStr() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        return sdf.format(date);
    }

    public static ObjectMapper getJsonMapper() {

        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
        // 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性
        mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

        // 忽略EMPTY_BEANS
        mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);

        // 允许单引号
        mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);

        // 允许\t等控制符
        mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);

        // 排序
//        mapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS);
        // DateFormat
        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"));
        return mapper;
    }
    public static String eventStr = "{\n"
            + "    \"username\" : \"test19\",\n"
            + "    \"loginIp\" : \"172.168.2.55\",\n"
            + "    \"passwordLength\" : 7,\n"
            + "    \"loginTime\" : \"2018-06-05 11:12:13\",\n"
            + "    \"cookieFinger\" : \"4f913092-69a6-4da8-840b-6ba14535f183\",\n"
            + "    \"loginStatus\" : \"success\",\n"
            + "    \"registerIp\" : \"172.168.1.231\",\n"
            + "    \"mobilePhone\" : \"13819191919\",\n"
            + "    \"registerTime\" : \"2018-01-15 10:36:14\",\n"
            + "    \"email\" : \"test19@test.com\",\n"
            + "    \"did\" : \"1003836775925620736\",\n"
            + "    \"lastLoginTime\" : \"2018-06-05 11:12:05\",\n"
            + "    \"lastLoginIp\" : \"172.168.2.55\"\n"
            + "  }";
    public static String eventStr2011 = " { \"checkPoint\" : \"IP1002011\",\n"
            + "  \"requestTime\" : \"2018-07-12 13:55:48\",\n"
            + "  \"appId\" : \"javaclienttest\",\n"
            + "  \"eventBody\" : {\n"
            + "    \"configName\" : \"test11\",\n"
            + "    \"merchantId\" : \"10000003892\",\n"
            + "    \"isActived\" : true,\n"
            + "    \"configId\" : \"6a0f0b4c15313108720711001\",\n"
            + "    \"ruleList\" : [ {\n"
            + "      \"ruleConfigId\" : \"6a0f0b4c15313108720711001\",\n"
            + "      \"merchantId\" : \"10000003892\",\n"
            + "      \"ruleId\" : \"rule02\",\n"
            + "      \"merchantRuleInfo\" : {\n"
            + "        \"ruleId\" : \"rule02\",\n"
            + "        \"ruleName\" : \"相同IP在时间范围内支付金额\",\n"
            + "        \"ruleType\" : \"flowCurrency\",\n"
            + "        \"paramsConfig\" : false,\n"
            + "        \"timeConfig\" : false,\n"
            + "        \"timeConfigUnit\" : [ \"分钟\", \"小时\", \"天\" ],\n"
            + "        \"limitConfig\" : false,\n"
            + "        \"fieldName1\" : \"IP\",\n"
            + "        \"fieldName2\" : \"交易金额\"\n"
            + "      },\n"
            + "      \"timeConfigData\" : 1,\n"
            + "      \"timeConfigUnitData\" : \"小时\",\n"
            + "      \"limitConfigData\" : 0,\n"
            + "      \"score\" : 0,\n"
            + "      \"actived\" : true,\n"
            + "      \"lastUpdateTime\" : \"\"\n"
            + "    }, {\n"
            + "      \"ruleConfigId\" : \"6a0f0b4c15313108720711001\",\n"
            + "      \"merchantId\" : \"10000003892\",\n"
            + "      \"ruleId\" : \"rule01\",\n"
            + "      \"merchantRuleInfo\" : {\n"
            + "        \"ruleId\" : \"rule01\",\n"
            + "        \"ruleName\" : \"相同卡号在时间范围内支付次数\",\n"
            + "        \"ruleType\" : \"flowCount\",\n"
            + "        \"paramsConfig\" : false,\n"
            + "        \"timeConfig\" : false,\n"
            + "        \"timeConfigUnit\" : [ \"分钟\", \"小时\", \"天\" ],\n"
            + "        \"limitConfig\" : false,\n"
            + "        \"fieldName1\" : \"卡号\",\n"
            + "        \"fieldName2\" : \"交易成功\"\n"
            + "      },\n"
            + "      \"timeConfigData\" : 1,\n"
            + "      \"timeConfigUnitData\" : \"小时\",\n"
            + "      \"limitConfigData\" : 0,\n"
            + "      \"score\" : 0,\n"
            + "      \"actived\" : false,\n"
            + "      \"lastUpdateTime\" : \"\"\n"
            + "    }, {\n"
            + "      \"ruleConfigId\" : \"6a0f0b4c15313108720711001\",\n"
            + "      \"merchantId\" : \"10000003892\",\n"
            + "      \"ruleId\" : \"rule05\",\n"
            + "      \"merchantRuleInfo\" : {\n"
            + "        \"ruleId\" : \"rule05\",\n"
            + "        \"ruleName\" : \"卡属国家(地区)与收货国家(地区)不一致\",\n"
            + "        \"ruleType\" : \"measure\",\n"
            + "        \"paramsConfig\" : false,\n"
            + "        \"timeConfig\" : false,\n"
            + "        \"timeConfigUnit\" : [ \"分钟\", \"小时\", \"天\" ],\n"
            + "        \"limitConfig\" : false,\n"
            + "        \"fieldName1\" : \"\",\n"
            + "        \"fieldName2\" : \"\"\n"
            + "      },\n"
            + "      \"timeConfigData\" : 0,\n"
            + "      \"timeConfigUnitData\" : \"小时\",\n"
            + "      \"limitConfigData\" : 0,\n"
            + "      \"score\" : 0,\n"
            + "      \"actived\" : false,\n"
            + "      \"lastUpdateTime\" : \"\"\n"
            + "    } ],\n"
            + "    \"action\" : \"update\",\n"
            + "    \"siteList\" : [ \"www.gg.com\" ],\n"
            + "    \"lastUpdateUserName\" : \"陈佳妮\",\n"
            + "    \"lastUpdateTime\" : \"2018-07-12 13:55:48\"\n"
            + "  }"
            + "}";

    public static String eventStr1015 = "{\n"
            + "  \"eventId\" : \"9d86d0d0-8afc-11e8-abe7-63edff23bdec\",\n"
            + "  \"checkPoint\" : \"IP1001015\",\n"
            + "  \"riskMessage\" : \"PASS\",\n"
            + "  \"requestTime\" : \"2018-07-19 10:36:42\",\n"
            + "  \"saveTime\" : \"2018-07-19 10:37:01\",\n"
            + "  \"requestReceive\" : \"2018-07-19 10:37:01\",\n"
            + "  \"responseTime\" : \"2018-07-19 10:37:01\",\n"
            + "  \"appId\" : \"javaclienttest\",\n"
            + "  \"validMemo\" : \"校验通过\",\n"
            + "  \"eventBody\" : {\n"
            + "    \"orderRespMsg\" : \"Do not honor,Please contact the issuing bank to confirm the bank card payment limit:发卡行不予承兑，请联系发卡行，确认银行卡支付限制\",\n"
            + "    \"orderStatus\" : \"failed\",\n"
            + "    \"orderRespCode\" : \"3119\",\n"
            + "    \"acsOrderId\" : \"123123123123123\",\n"
            + "    \"shippingCity\" : \"Escondido\",\n"
            + "    \"orderId\" : \"123123123123\",\n"
            + "    \"cardPhoneNumber\" : \"123123123\",\n"
            + "    \"billState\" : \"California\",\n"
            + "    \"currencyAmount\" : \"732.47\",\n"
            + "    \"shippingPostalCode\" : \"92026\",\n"
            + "    \"cardFirstName\" : \"Ruth Salter\",\n"
            + "    \"cardNo\" : \"4147400123456789\",\n"
            + "    \"billFirstName\" : \"sdfsdf\",\n"
            + "    \"billCountryCode\" : \"USA\",\n"
            + "    \"cardLastName\" : \"sdfsdf\",\n"
            + "    \"merchantId\" : \"10000004181\",\n"
            + "    \"billLASTName\" : \"sdfsdf\",\n"
            + "    \"shippingPhoneNumber\" : \"234234234\",\n"
            + "    \"goodsName\" : \"1xRambler 30 OZ Tumbler Flamingo,1xKansas City Chiefs 30oz Rambler Tumblers,1xRambler 30 OZ Tumbler Crane Green\",\n"
            + "    \"tradeType\" : \"1001\",\n"
            + "    \"cardEmail\" : \"abcde@hotmail.com\",\n"
            + "    \"goodsDesc\" : \"description\",\n"
            + "    \"amount\" : \"114.35\",\n"
            + "    \"customerIp\" : \"98.176.59.158\",\n"
            + "    \"shippingLASTName\" : \"Ruth Salter\",\n"
            + "    \"billEmail\" : \"abcde@hotmail.com\",\n"
            + "    \"billCity\" : \"Escondido\",\n"
            + "    \"billPhoneNumber\" : \"234234234\",\n"
            + "    \"submitTime\" : \"20180719103639\",\n"
            + "    \"shippingCountryCode\" : \"USA\",\n"
            + "    \"billAddress\" : \"1126 North Ave\",\n"
            + "    \"cardNoCountryName\" : \"UNITED STATES\",\n"
            + "    \"originalAmount\" : \"73247.00\",\n"
            + "    \"shippingFirstName\" : \"Ruth Salter\",\n"
            + "    \"shippingState\" : \"California\",\n"
            + "    \"shippingAddress\" : \"1126 North Ave\",\n"
            + "    \"siteId\" : \"www.viptumblers.com\",\n"
            + "    \"billPostalCode\" : \"92033\",\n"
            + "    \"currencyCode\" : \"CNY\",\n"
            + "    \"shippingEmail\" : \"abcde@hotmail.com\",\n"
            + "    \"submitDateTime\" : \"2018-07-19 10:36:39\",\n"
            + "    \"customerIpCountry\" : \"United States\",\n"
            + "    \"cardBin\" : \"414740\"\n"
            + "  },\n"
            + "  \"finalResult\" : {\n"
            + "    \"riskMessage\" : \"PASS\",\n"
            + "    \"riskLevel\" : 0\n"
            + "  }\n"
            + "}";

    public static String eventStr1010 = "{\n"
            + "  \"eventId\" : \"b8077f00-8b00-11e8-b2ee-61746d52c48e\",\n"
            + "  \"checkPoint\" : \"IP1001010\",\n"
            + "  \"requestTime\" : \"2018-07-19 11:06:23\",\n"
            + "  \"saveTime\" : \"2018-07-19 11:06:23\",\n"
            + "  \"requestReceive\" : \"2018-07-19 11:06:23\",\n"
            + "  \"responseTime\" : \"2018-07-19 11:06:23\",\n"
            + "  \"appId\" : \"javaclienttest\",\n"
            + "  \"validMemo\" : \"校验通过\",\n"
            + "  \"eventBody\" : {\n"
            + "    \"tradeType\" : \"sale\",\n"
            + "    \"acsOrderId\" : \"123123123123223\",\n"
            + "    \"submitTime\" : \"20180719110623\",\n"
            + "    \"amount\" : \"100000.0\",\n"
            + "    \"cardNo\" : \"6011492100005191\",\n"
            + "    \"merchantId\" : \"10000104395\",\n"
            + "    \"orderId\" : \"20180719110623764\",\n"
            + "    \"currencyCode\" : \"USD\",\n"
            + "    \"customerIp\" : \"98.176.59.158\",\n"
            + "    \"cardFirstName\" : \"qiuhua\",\n"
            + "    \"cardLastName\" : \"yang\",\n"
            + "    \"goodsDesc\" : \"goodsInfo\",\n"
            + "    \"billPhoneCity\" : \"\",\n"
            + "    \"cardNoCountryName\" : \"UNITED STATES\",\n"
            + "    \"shippingAddress\" : \"1126 North Ave\",\n"
            + "    \"cardEmail\" : \"abcde@hotmail.com\",\n"
            + "    \"originalAmount\" : \"1000.0\",\n"
            + "    \"currencyAmount\" : \"1000.0\",\n"
            + "    \"shippingName\" : \"\",\n"
            + "    \"merchantBLRuleResult\" : { }\n"
            + "  }\n"
            + "}";
    public static String eventStr10152 = "{\n"
            + "  \"eventId\" : \"b5fef3c0-8ef0-11e8-a6ad-61746d52c48e\",\n"
            + "  \"checkPoint\" : \"IP1001015\",\n"
            + "  \"rules\" : [ \"OrgRiskReturnRule001\" ],\n"
            + "  \"riskMessage\" : \"PASS\",\n"
            + "  \"requestTime\" : \"2018-07-24 11:21:24\",\n"
            + "  \"saveTime\" : \"2018-07-24 11:21:53\",\n"
            + "  \"requestReceive\" : \"2018-07-24 11:21:53\",\n"
            + "  \"responseTime\" : \"2018-07-24 11:21:53\",\n"
            + "  \"appId\" : \"fixDataFromDB\",\n"
            + "  \"validMemo\" : \"校验通过\",\n"
            + "  \"eventBody\" : {\n"
            + "    \"orderRespMsg\" : \"商户无可用渠道\",\n"
            + "    \"orderStatus\" : \"failed\",\n"
            + "    \"orderRespCode\" : \"0348\",\n"
            + "    \"acsOrderId\" : \"1021807241121483053\",\n"
            + "    \"shippingCity\" : \"上海\",\n"
            + "    \"orderId\" : \"20180724111419105\",\n"
            + "    \"cardPhoneNumber\" : \"18621167187\",\n"
            + "    \"billState\" : \"上海\",\n"
            + "    \"currencyAmount\" : \"0.1\",\n"
            + "    \"shippingPostalCode\" : \"888888\",\n"
            + "    \"cardFirstName\" : \"马\",\n"
            + "    \"cardNo\" : \"4693960111089859\",\n"
            + "    \"billFirstName\" : \"billFirstName\",\n"
            + "    \"billCountryCode\" : \"CHN\",\n"
            + "    \"cardLastName\" : \"超\",\n"
            + "    \"merchantId\" : \"10000003786\",\n"
            + "    \"billLASTName\" : \"billLastName\",\n"
            + "    \"shippingPhoneNumber\" : \"02160625509\",\n"
            + "    \"goodsName\" : \"超越\",\n"
            + "    \"tradeType\" : \"1001\",\n"
            + "    \"cardEmail\" : \"test@test.com\",\n"
            + "    \"goodsDesc\" : \"机关枪\",\n"
            + "    \"amount\" : \"0.015611300000000002\",\n"
            + "    \"customerIp\" : \"45.56.85.146\",\n"
            + "    \"shippingLASTName\" : \"shippingLastName\",\n"
            + "    \"billEmail\" : \"501374997@qq.com\",\n"
            + "    \"billCity\" : \"上海\",\n"
            + "    \"billPhoneNumber\" : \"18621758498\",\n"
            + "    \"submitTime\" : \"20180724111419\",\n"
            + "    \"shippingCountryCode\" : \"CHN\",\n"
            + "    \"billAddress\" : \"上海,中国\",\n"
            + "    \"originalAmount\" : \"10.0\",\n"
            + "    \"cardNoCountryName\" : \"NEW ZEALAND\",\n"
            + "    \"shippingFirstName\" : \"shippingFirstName\",\n"
            + "    \"shippingState\" : \"上海\",\n"
            + "    \"shippingAddress\" : \"shippingAddress\",\n"
            + "    \"siteId\" : \"www.pay.com\",\n"
            + "    \"billPostalCode\" : \"200120\",\n"
            + "    \"currencyCode\" : \"CNY\",\n"
            + "    \"shippingEmail\" : \"chma@live.com\",\n"
            + "    \"submitDateTime\" : \"2018-07-24 11:14:19\",\n"
            + "    \"customerIpCountry\" : \"United States\",\n"
            + "    \"cardBin\" : \"469396\"\n"
            + "  }}";
}
